"""
获取命令执行结果
os.popen()
获取命令的执行状态码，相当于$?
subprocess.call()

多线程：target后面写函数名，不是调用函数，不要写（），，
arges后面写要给函数传的参，，参数要为元组类型，元组类型
threading.Thread(target=函数名，arges=参数)
"""
import os
import subprocess
import threading

#result = os.popen("ping baidu.com")
#print(result.read())

print("---"*8)

# null_file = open("win_null",mode="wb")
# stdout=文件：标准输出，stderr=文件：标准错误输出 ：：将输出信息存放到文件中
# result1 = subprocess.call("ping baidu.com",shell=True,stdout=null_file,stderr=null_file)

# print("状态码：",result1)

# null_file.close()

# 检测某一主机是否up
def checkhost(ip):
    host_ip = "ping -n 1 -w 1 %s" %ip
    null_file = open("null_file",mode="wb")
    ping_result = subprocess.call(host_ip,shell=True,stdout=null_file,stderr=null_file)
    if ping_result == 0:
        print("%s is up\n"%ip)
    null_file.close()

# 检测某一网段那些ip正在使用
def checkip():
    for i in range(1,255):
        ip = "10.11.4.%s"%i
        result = threading.Thread(target=checkhost,args=(ip,))
        result.start()
        # checkhost(ip)

if __name__ == '__main__':
     checkip()